package com.hwl.acl.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hwl.acl.pojo.Permission;

import java.util.List;

/**
 * <p>
 * 权限 服务类
 * </p>
 *
 * @author long
 * @since 2021-10-16
 */
public interface PermissionService extends IService<Permission> {

    /**
     * 查询所有菜单
     */
    List<Permission> queryAllMenu();

    /**
     * 递归删除菜单
     */
    boolean removeChildById(String id);

    /**
     * 分配角色权限
     */
    boolean assignRolePermissions(String roleId, String[] permissionId);

    /**
     * 获取角色的权限
     */
    List<Permission> selectAllMenu(String roleId);

    /**
     * 根据用户id获取用户权限
     */
    List<String> selectPermissionValueByUserId(String id);

    /**
     * 获取用户拥有的菜单
     */
    List<JSONObject> selectPermissionByUserId(String id);
}
